package com.share.controller;

import com.share.model.File;
import com.share.model.User;
import com.share.service.FileService;
import com.share.utils.UserUtils;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.security.NoSuchAlgorithmException;

@Slf4j
@RestController
@RequestMapping("/api/file")
public class FileController {

    /**
     *      上传、删除、查询文件夹中的东西
     *      新建文件夹
     *      文件、文件夹：重命名、查看详细信息、移动、复制、剪切、粘贴
     *      查看方式：缩略图、详细信息
     *      排序方式：文件名、修改时间、大小
     */

    @Autowired
    private FileService fileService;
    @Autowired
    HttpServletRequest request;

    // 上传文件 用户 + 文件名 + 上传时间
    @PostMapping("/uploadFile")
    public void uploadFile(@RequestBody File file) {
//        User user = (User) request.getSession(false).getAttribute("user");
        Long userId = UserUtils.get();
        
        log.info("user:{}", userId);
        // 2. 将文件写到 HDFS 中
//        fileService.uploadFile(userId, file);
    }

    // 上传文件夹
    @PostMapping("/uploadDir")
    public void uploadDir(User user) {

    }

    // 删除文件 文件夹
    @DeleteMapping
    public void delete(@RequestParam String fileName) {
        fileService.delete(fileName);
    }

    // 重命名
    @GetMapping("/reName")
    public void update(@RequestBody File file) {

    }

    // 检索文件
    @GetMapping("/select")
    public void select(@RequestBody File file) {
        User user = (User) request.getSession(false).getAttribute("user");
        fileService.select(user);
    }

    // 下载文件 递归下载文件夹
    @GetMapping("/download")
    public void updateAvatar(@RequestHeader("Authorization") String token, @RequestBody User user) {

    }

}
